#ifndef __USART_H
#define	__USART_H

#include "includes.h"

//引脚定义
/*******************************************************/
#define USARTx                             USART1

/* 不同的串口挂载的总线不一样，时钟使能函数也不一样，移植时要注意 
 * 串口1和6是      		RCC_APB2PeriphClockCmd（速度较快）
 * 串口2/3/4/5/7/8是  RCC_APB1PeriphClockCmd（速度较慢）
 * 注意USART只有1/2/3/6，剩下的都是UART
 */
#define USARTx_CLK                         RCC_APB2Periph_USART1
#define USARTx_CLOCKCMD                    RCC_APB2PeriphClockCmd
#define USARTx_BAUDRATE                    115200  //串口波特率

#define USARTx_RX_GPIO_PORT                GPIOA
#define USARTx_RX_GPIO_CLK                 RCC_AHB1Periph_GPIOA
#define USARTx_RX_PIN                      GPIO_Pin_10
#define USARTx_RX_AF                       GPIO_AF_USART1
#define USARTx_RX_SOURCE                   GPIO_PinSource10

#define USARTx_TX_GPIO_PORT                GPIOA
#define USARTx_TX_GPIO_CLK                 RCC_AHB1Periph_GPIOA
#define USARTx_TX_PIN                      GPIO_Pin_9
#define USARTx_TX_AF                       GPIO_AF_USART1
#define USARTx_TX_SOURCE                   GPIO_PinSource9

/************************************************************/

// 系统printf函数仅用于USART1
extern void USARTx_Config(void);

// 自定义printf函数（默认115200 8-N-1）
extern void USART2_Config(void);// TX——PA2, RX——PA3
extern void USART2_Printf(unsigned char *Data, ...);
extern void USART3_Config(void);// TX——PB10, RX——PB11
extern void USART3_Printf(unsigned char *Data, ...);

#endif /* __USART_H */
